package com.zhangwei.fresco;

import android.app.Application;
import android.widget.Toast;

import com.facebook.drawee.backends.pipeline.Fresco;
import com.zhangwei.fresco.callbacks.AppActivityLifecycleCallbacks;
import com.zhangwei.fresco.utils.FrescoConfig;

import org.androidannotations.annotations.AfterInject;
import org.androidannotations.annotations.EApplication;

/**
 * @version V1.0
 * @description:
 * @title: Expands
 * @package com.zhangwei.fresco
 * @author: zhangwei
 * @date: 2015-12-23 下午2:49
 */
@EApplication
public class BaseApp extends Application {

    private AppActivityLifecycleCallbacks lefcycle = new AppActivityLifecycleCallbacks();
    private static final int MAX_CACHE_SIZE = (int) Runtime.getRuntime().maxMemory() / 8;

    @AfterInject
    public void init() {
        Fresco.initialize(this, FrescoConfig.getImagePipelineConfig(this));
        registerActivityLifecycleCallbacks(lefcycle);
    }

    public void unRegisterActivityLifecycleCallbacks() {
        if (lefcycle != null) {
            unregisterActivityLifecycleCallbacks(lefcycle);
        }

    }

    public void showToast(String msg) {
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
    }
//
//    public ImagePipelineConfig getImagePipelineConfig() {
//        ImagePipelineConfig.Builder builder = ImagePipelineConfig.newBuilder(this);
//
//        /**
//         * 图片内存配置
//         */
//        final MemoryCacheParams params = new MemoryCacheParams(
//                MAX_CACHE_SIZE, // 内存缓存中总图片的最大大小,以字节为单位。
//                Integer.MAX_VALUE,                     // 内存缓存中图片的最大数量。
//                MAX_CACHE_SIZE, // 内存缓存中准备清除但尚未被删除的总图片的最大大小,以字节为单位。
//                Integer.MAX_VALUE,                     // 内存缓存中准备清除的总图片的最大数量。
//                Integer.MAX_VALUE);                    // 内存缓存中单个图片的最大大小。
//
//        Supplier<MemoryCacheParams> meoryCacheParams = new Supplier<MemoryCacheParams>() {
//
//            @Override
//            public MemoryCacheParams get() {
//                return params;
//            }
//        };
//        // 一套big bitma 保存路径 跟small bitmap  保存路径可以单独设置
//
//        /**
//         * 可以正对用户sdk储存容量进行配置
//         */
//        DiskCacheConfig.Builder smallConfig = DiskCacheConfig.newBuilder();
//        smallConfig.setBaseDirectoryPath(getExternalCacheDir());
//        smallConfig.setBaseDirectoryName("sImageCache");
//        smallConfig.setMaxCacheSize(50 * ByteConstants.MB);
//        smallConfig.setMaxCacheSizeOnLowDiskSpace(30 * ByteConstants.MB);
//        smallConfig.setMaxCacheSizeOnVeryLowDiskSpace(10 * ByteConstants.MB);
//
//
//        DiskCacheConfig.Builder mainCOnfigBuilder = DiskCacheConfig.newBuilder();
//        mainCOnfigBuilder.setBaseDirectoryPath(getExternalCacheDir());
//        mainCOnfigBuilder.setBaseDirectoryName("imageCache");
//        mainCOnfigBuilder.setMaxCacheSize(100 * ByteConstants.MB);
//        mainCOnfigBuilder.setMaxCacheSizeOnLowDiskSpace(50 * ByteConstants.MB);
//        mainCOnfigBuilder.setMaxCacheSizeOnVeryLowDiskSpace(30 * ByteConstants.MB);
//
//
//        builder.setBitmapMemoryCacheParamsSupplier(meoryCacheParams);
//        builder.setMainDiskCacheConfig(mainCOnfigBuilder.build());
//        builder.setSmallImageDiskCacheConfig(smallConfig.build());
//
//        return builder.build();
//    }


}
